Event based video generation

ABSTRACT

A computer implemented method of event based video generation, comprising: on the device, receiving a feed of video captured by a camera, on a memory of the device, maintaining at least one buffer storing a most recent portion of the video feed being received, on a display of the device, presenting at least one GUI element, each one of the GUI elements being associated with a respective predefined video length, and upon actuation of one of the GUI elements by a user of the device, forwarding at least a sub-portion of the video feed portion stored in the buffer for further processing, the forwarded sub-portion having the predefined video length associated with the GUI element actuated by the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention is filed under 35 U.S.C. § 371 as the UnitedStates national phase of International Application No.PCT/IB2015/053800, filed May 22, 2015, which designated the UnitedStates and which is hereby incorporated in its entirety including alltables, figures, and claims.

FIELD AND BACKGROUND OF THE INVENTION

The present invention relates to video capture, generation and editing,and more particularly, but not exclusively to a system and method forevent based video generation.

Today, at public performances, tennis games, football games, seminars,classes, lectures, speeches, etc., it has become increasingly popularfor a member of the audience, to capture still images and videosequences using a camera installed on a device (say a smart phone or atablet computer) in use by the audience member, using a camerawirelessly connected to the member's device, etc., as known in the art.

Often, at a later stage, the member of the audience may watch thecaptured video sequences or images, say on a screen of the device, on ascreen of a smart TV set or of a laptop computer, etc., edit the video,etc., as known in the art.

The member may forward the images to a friend, a family member, or acolleague, say by email. In that way, the member may share moments ofinterest caught in the images with friends, family, colleagues, etc.

The member may also upload the video to one of the many popular publicSocial Networking websites—such as YouTube, thus sharing the moments ofinterest with friends, family, colleagues, or a more general public.

Indeed, Social Networking is an increasingly popular tool fordistributing personalized videos, because it provides a unified platformfor communicating with friends, family, coworkers, and even the generalpublic. Today, users can more easily connect to social networking usingsmart phones, tablet computers, etc.

It has thus become increasingly popular to use personalized videorecordings, for a variety of purposes, be the purposes, social,educational, professional, etc.

SUMMARY OF THE INVENTION

According to one aspect of the present invention there is provided acomputer implemented method of event based video generation, the methodcomprising steps a computer processor of a device is programmed toperform, the steps comprising: on the device, receiving a feed of videocaptured by a camera, on a memory of the device, maintaining at leastone buffer storing a most recent portion of the video feed beingreceived, on a display of the device, presenting at least one GUI(Graphical User Interface) element, each one of the GUI elements beingassociated with a respective predefined video length, and upon actuationof one of the GUI elements by a user of the device, forwarding at leasta sub-portion of the video feed portion stored in the buffer for furtherprocessing, the forwarded sub-portion having the predefined video lengthassociated with the GUI element actuated by the user.

According to a second aspect of the present invention there is providedan apparatus for event based video generation, the apparatus beingimplemented on a device and comprising: a video feed receiver,configured to receive a feed of video captured by a camera; a buffermaintainer, in communication with the video feed receiver, configured tomaintain at least one buffer storing a most recent portion of the videofeed being received, on a memory of the device; a GUI element presenter,configured to present at least one GUI (Graphical User Interface)element on a display of the device, each one of the GUI elements beingassociated with a respective predefined video length; and a forwarder,in communication with the GUI element presenter, configured to forwardat least a sub-portion of the video feed portion stored in the bufferfor further processing, upon actuation of one of the GUI elements by auser of the device, the forwarded sub-portion having the predefinedvideo length associated with the GUI element actuated by the user.

According to a third of the present invention there is provided anon-transitory computer readable medium storing computer executableinstructions for performing steps of event based video generation, on adevice, the steps comprising: on the device, receiving a video feedcaptured by a camera; on a memory of the device, maintaining at leastone buffer storing a most recent portion of the video feed beingreceived; on a display of the device, presenting at least one GUI(Graphical User Interface) element, each one of the GUI elements beingassociated with a respective predefined video length; upon actuation ofone of the GUI elements by a user of the device, forwarding at least asub-portion of the video feed portion stored in the buffer for furtherprocessing, the forwarded sub-portion having the predefined video lengthassociated with the GUI element actuated by the user.

Unless otherwise defined, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art to which this invention belongs. The materials, methods, andexamples provided herein are illustrative only and not intended to belimiting.

Implementation of the method and system of the present inventioninvolves performing or completing certain selected tasks or stepsmanually, automatically, or a combination thereof.

Moreover, according to actual instrumentation and equipment of preferredembodiments of the method and system of the present invention, severalselected steps could be implemented by hardware or by software on anyoperating system of any firmware or a combination thereof.

For example, as hardware, selected steps of the invention could beimplemented as a chip or a circuit. As software, selected steps of theinvention could be implemented as a plurality of software instructionsbeing executed by a computer using any suitable operating system. In anycase, selected steps of the method and system of the invention could bedescribed as being performed by a data processor, such as a computingplatform for executing a plurality of instructions.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is herein described, by way of example only, withreference to the accompanying drawings.

With specific reference now to the drawings in detail, it is stressedthat the particulars shown are by way of example and for purposes ofillustrative discussion of the preferred embodiments of the presentinvention only, and are presented in order to provide what is believedto be the most useful and readily understood description of theprinciples and conceptual aspects of the invention. The descriptiontaken with the drawings making apparent to those skilled in the art howthe several forms of the invention may be embodied in practice.

In the drawings:

FIG. 1 is a block diagram schematically illustrating an exemplaryapparatus for event based video generation, according to an exemplaryembodiment of the present invention.

FIG. 2 is a simplified flowchart schematically illustrating an exemplarymethod for event based video generation, according to an exemplaryembodiment of the present invention.

FIG. 3 is a block diagram schematically illustrating a first exemplaryGUI of an apparatus for event based video generation, according to anexemplary embodiment of the present invention.

FIG. 4 is a block diagram schematically illustrating a second exemplaryGUI of an apparatus for event based video generation, according to anexemplary embodiment of the present invention.

FIG. 5 is a block diagram schematically illustrating computer memorybuffer usage in performing steps of event based video generation,according to an exemplary embodiment of the present invention.

FIG. 6 is a block diagram schematically illustrating an exemplarycomputer readable medium storing computer executable instructions forperforming steps of event based video generation, according to anexemplary embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present embodiments comprise an apparatus and a method for eventbased video generation.

Today, it has become increasingly popular for a member of the audience,at public performances, tennis games, football games, seminars, classes,lectures, speeches, etc., to capture still images and video sequences.The member captures the video or still images using a camera installedon a device (say on a smart phone or a tablet computer) in use by theaudience member, using a camera wirelessly connected to the device,etc., as known in the art.

In as far as still images are concerned, smart phones and small sizedtablet computers, have made it easier for unskilled photographers tocapture interesting moments in images and share those images with theirfriends and the world, immediately or almost immediately after capturingthe images.

The member (typically, an unskilled photographer) may thus use his smartphone or tablet computer, for taking dozens or more stills images, andthen select among the images, an image which is better framed, thusgiving the impression of being a talented photographer who manages tocatch an exact moment of interest.

In addition, the member may use smart phone applications to furtherimprove the artistic quality of the selected image by applying imagefilters that may blur edges of the image or alter colors, therebyfurther increasing the artistic nature of the image selected by themember.

Video, however, is a string of many related frames or images and doesnot lend itself to similar selection of the best images. When sectionsor parts of a video captured during a sport game, etc., are shaky,blurry, poorly framed and the like, the only practical remedy availabletoday is one of editing out of the bad parts, after the game.

Video further involves complications resultant upon a need for anappropriate and well-timed capturing. For example, the member of theaudience may use his mobile smart phone, to continuously capture a videoof a Soccer Game, of which only very specific moments (say a goal by hisson playing in one of the teams) are of real interest to the member (saymother) and friends.

Further, an immediate forwarding of the video would require continuousvideo streaming over a cellular network, which streaming would belimited significantly, by the bandwidth currently provided to users ofcellular networks.

Thus, currently, after the game, the member of the audience wouldusually download the video to a personal computer (say laptop computer),edit the captured video—editing out bad or boring parts, and leavingonly a moment of interest to the member.

Subsequently, the member may forward the video to a friend, a familymember, or colleague—say by email, or upload the video to one of themany popular public Social Networking websites.

In that way, the member may share moments of interest caught in thevideo (say a particular participant's performance such as a goal by apopular soccer player or the member's son) with friends, family, etc.

Potentially, with presented embodiments of the present invention, thesharing of video with friends, family, etc., may be turned into a morespontaneous experience, with possibly, an immediate or an almostimmediate forwarding of moments of interest video to friends, family,etc.

In one exemplary embodiment, on a user's device such as a mobile smartphone or a tablet computer, there is received a feed of video capturedby a camera—be the camera a camera installed on the device itself, orrather a camera in communication with the device (say a wireless actioncamera).

As the video feed captured by a camera is being received, there aremaintained one or more buffers in which the received video's frames arestored, say in a first-in, first-out manner, such that at least one ofthe buffers stores a most recent portion of the video feed beingreceived.

In one example, the buffer stores the most recent five minutes of thevideo being received.

During receipt of the video feed, there are also presented on a displayof the device, one or more GUI (Graphical User Interface) elements—say afew radio buttons or menu options.

Each one of the GUI elements is associated with a respective predefinedvideo length.

Optionally, the video length is predefined for each one of the GUIelements specifically, in a preliminary step of GUI element definitionby a user of the device, by an administrator of a server computer inremote communication with the device, or by a programmer, as describedin further detail hereinbelow.

In the exemplary embodiment, each one of the GUI elements is furtherassociated with a respective event type—which is also predefined by theuser, administrator or programmer, for the specific GUI element.

Further in the exemplary embodiment, each one of the GUI elements ispresented to the user, on the user's device, with a marking whichindicates the association of the GUI element with the respective eventtype predefined for the GUI element.

Thus, in one example, per the predefined event types, during a game ofSoccer, one GUI radio button presented to the user bears the word‘Goal’, one GUI radio button presented to the user bears the word‘Offside’, and one GUI radio button presented to the user bears the word‘Attack ’.

Upon actuation of one of the GUI elements by a user of the device —sayby touching one of the GUI radio buttons, there is forwarded asub-portion of the video feed portion stored in the buffer for furtherprocessing (say the five minutes buffer of the above made example).

In the example, upon that actuation, the sub-portion is communicated toa server computer remote from the user's device, on which servercomputer the sub-portion is further processed by conversion into a videoclip, and is distributed as an email attachment, to a list of recipientspredefined for the specific user's device.

The forwarded sub-portion is of a video length associated with the GUIelement actuated by the user—say the video length predefinedspecifically for the radio button pushed by the user.

Thus, in the example, when a player scores a goal, the user actuates theradio button which bears the word ‘Goal’, and a sub-portion made of thelast twenty seconds of the five minutes stored in the buffer maintainedon the user's device, is forwarded by communication to the remote servercomputer.

However, when the user actuates the radio button which bears the word‘Attack’, there is forwarded a sub-portion made of the last one minuteof the five minutes stored in the buffer.

Consequently, the video clip distributed as an email attachment, to thelist of recipients predefined for the specific user's device, is focusedat the very specific moment of interest to the user (say the goal or theattack which led to the goal). Further, bandwidth consumed by the useris reduced to the bandwidth needed for the twenty seconds or one minutelong video sub-portions of interest to the user.

In another example, the user is sent a message (say an email message)bearing a link usable for downloading the video clip from the remotecomputer server, which message the user may forward directly to one ormore recipient.

The principles and operation of an apparatus, method, and mediumaccording to the present invention may be better understood withreference to the drawings and accompanying description.

Before explaining at least one embodiment of the invention in detail, itis to be understood that the invention is not limited in its applicationto the details of construction and the arrangement of the components setforth in the following description or illustrated in the drawings.

The invention is capable of other embodiments or of being practiced orcarried out in various ways. Also, it is to be understood that thephraseology and terminology employed herein is for the purpose ofdescription and should not be regarded as limiting.

Reference is now made to FIG. 1, which is a block diagram schematicallyillustrating an exemplary apparatus for event based video generation,according to an exemplary embodiment of the present invention.

An apparatus 1000 for event based video generation, according to anexemplary embodiment of the present invention includes a device such asa smart mobile phone or a tablet computer, which is equipped with acomputer processor as well as with other hardware and softwarecomponents. For example, the device may include hardware and softwarecomponents which are usable for communicating over a network such as theinternet, over a Wi-Fi connection, over a Bluetooth™ connection, etc.,as known in the art.

The apparatus 1000 further includes one or more additional parts, suchas the parts denoted 110-140 in FIG. 1.

The additional parts 110-140 may be implemented as software—say byprogramming the computer processor to execute steps of the methoddescribed in further detail hereinbelow, as hardware—say as an electriccircuit, or as a combination of hardware and software.

For example, the apparatus 1000 may be implemented as a computerapplication such an iPhone App, which may be downloaded and installed onthe user's smart cellular phone (say an Apple® iPhone or a Samsung®Galaxy cellular phone) or tablet computer.

Thus, the apparatus 1000 includes a video feed receiver 110 implementedon the device.

On the device, the video feed receiver 110 receives a feed of videocaptured by a camera—say a video feed captured by the device's userusing a camera installed on the device, a video feed wirelessly streamedlive to the user's device from an action camera installed in a tenniscourt, etc.

The apparatus 1000 further includes a buffer maintainer 120 incommunication with the video feed receiver 110.

During the receiving of the video feed by the video feed receiver 110,the buffer maintainer 120 maintains one or more buffers on a memory ofthe device.

At least one of the buffers stores a most recent portion of the videofeed being received by the video feed receiver 110—say the last fiveminutes of the video feed being received, as described in further detailhereinbelow.

The apparatus 1000 further includes a GUI (Graphical User Interface)element presenter 130.

The GUI element presenter 130 presents one or more GUI (Graphical UserInterface) elements—say radio buttons, check boxes, options in a menu,etc., as known in the art, on a display of the user's device.

Each one of the GUI elements is associated with a respective videolength predefined by a user of the device, by a programmer of theapplication downloaded to the user's device, by an administrator of aremote computer in communication with the user's device, etc., asdescribed in further detail hereinbelow.

The apparatus 1000 further includes a forwarder 140 in communicationwith the GUI element presenter 130.

Upon actuation of one of the GUI elements by the user of the device—sayby clicking or touching the GUI element, the forwarder 140 forwards asub-portion of the video feed portion stored in one of the buffers forfurther processing.

The forwarded sub-portion's has the video length associated with the GUIelement actuated by the user, and predefined by the user, programmer, oradministrator, etc., for the specific GUI element, as described infurther detail hereinabove.

Thus, by actuating one of the GUI Elements, the user implicitly orexplicitly, chooses the size (say time length) of the video sub-portionforwarded by the forwarder 140, for further processing, as described infurther detail hereinbelow.

Optionally, the forwarder 140 forwards the sub-portion by communicatingthe sub-portion to a server computer remote from the device (say to aservice provider's computer in remote communication with the user'sdevice).

Optionally, the forwarder 140 communicates the sub-portion over theinternet or over another computer network, which the device accessesthrough a Wi-Fi connection, through a connection provided by a mobilecarrier, etc., as known in the art.

In one example, on the server computer, the sub-portion is furtherprocessed by conversion into a content item such as a video clip.

Optionally, in the example, the video clip may be distributed to one ormore recipients directly from the server computer, using a recipientslist predefined by the user through remote access to the servercomputer, say on a website implemented on the server computer, as knownin the art.

Alternatively, the video clip may be distributed indirectly, using anemail message which bears a link usable for downloading the video clipfrom the server computer, and is sent to the user. The user in turn, mayforward the email to one or more recipients, as described in furtherdetail hereinbelow.

Optionally, the apparatus 1000 further includes a video presenter incommunication with the forwarder 140, and the forwarder 140 ratherforwards the sub-portion to the video presenter. The video presenter inturn, further processes the sub-portion, by presenting the sub-portionon a screen of the user's device, thus playing the sub-portion ofinterest directly, to the user himself.

Optionally, the apparatus 1000 further includes a camera installed onthe user's device, and the user captures the video feed himself, usingthe device's own camera, as described in further detail hereinabove.

Optionally, the apparatus 1000 further includes a driver applicationusable for controlling a camera in communication with the user's device,say over a wireless connection, as known in the art. For example, theapparatus 1000 may include a driver application in communication with anaction camera (say a GoPro® Camera, for capturing the video feed, asknown in the art.

Optionally, the GUI element presenter 130 presents each one of the GUIelements with a marking which indicates an association of the GUIelement with a respective event type, as described in further detailhereinbelow.

Each one of the event types is predefined, for a specific one of the GUIelements, say by the user, administrator or programmer, as described infurther detail hereinbelow.

Thus, in one example, per the predefined event types, during a game ofSoccer, one GUI radio button presented to the user, bears the word‘Goal’, one GUI radio button presented to the user, bears the word‘Offside’, one radio button presented to the user, bears the word‘Attack ’, etc., as described in further detail hereinbelow.

In the example, when a player scores a goal which is captured in thevideo feed received by the video feed receiver 110, the user may actuatethe GUI radio button which bears the word ‘Goal’. Upon the actuation ofthe radio button by the user, the forwarder 140 communicates asub-portion made of the last twenty seconds of the video feed stored inthe buffer, to a remote server computer.

However, in the example, when the user rather actuates the GUI radiobutton which bears the word ‘Attack’, the forwarder 140 communicates alonger sub-portion made of the last one minute of the video feed storedin the buffer, to the remote server computer.

Optionally, the apparatus 1000, further includes a definition generator,which selects one or more of the video lengths, one or more of the GUIelements, one or more of the event types associated with a respectiveone of the GUI elements, or any combination thereof, based on a locationof the device, on data input by the user of the device, or on both thelocation and the user input data.

Optionally, the definition generator allows a user to define anassociation between at least one of the GUI elements and a respectivevideo length.

Optionally, the definition generator allows a user to define anassociation between at least one of the GUI elements and a respectiveevent type.

Optionally, the definition generator receives definition data whichdefines one or more of the video lengths, one or more of the GUIelements, one or more of the event types associated with a respectiveone of the GUI elements, or any combination thereof from a servercomputer remote from the device, as described in further detailhereinbelow.

The definition data received by the definition generator may includedefinitions already embedded in the application on which parts 110-140are implemented, when the application is downloaded from a remote serverof an App Store—such as Apple® App Store or Google® Play.

Alternatively or additionally, the received definition data may includedefinitions communicated to the definition generator (say a module ofthe downloaded application), from a remote server computer, say a remoteserver computer in use by a cloud based service provider.

In a first example, the definition generator forwards data generated onthe user's device based on a signal received by the user's device to aserver computer remote from the user's device, say the serviceprovider's server computer.

The data generated based on the signal may include, but is not limitedto: GPS (Global Positioning System) data, DGPS (Differential GlobalPositioning System) data, another location data, etc., or anycombination thereof, as known in the art.

Consequently, on the remote server computer, based on the data forwardedto the server computer, the server computer generates data which definesone or more of the video lengths, one or more of the GUI elements, oneor more of the event types associated with a respective one of the GUIelements, or any combination thereof.

The data generated on the server computer is sent by the servercomputer, to the user's device, and received by the definitiongenerator, which in turn, forwards the data to the GUI element presenter130, to the forwarder 140, or to both.

In a second example, the definition generator allows a user of thedevice to input a sport type, and based on the input sport type, thedefinition generator automatically selects one or more of the videolengths, one or more of the GUI elements, one or more of the event typesassociated with a respective one of the GUI elements, or any combinationthereof.

Optionally, in the second example, the definition generator usesdefinition data already embedded in the application on which the parts110-140 are implemented when the application is downloaded, say from theApp Store.

Alternatively or additionally, the definition generator communicateswith a remote computer, for receiving the definition data, as describedin further detail hereinabove.

In a third example, the definition generator allows the user of thedevice to input a code—say a code given to the user at a stadium atwhich a Football Match attended by the user takes place, and forwardsthe code input by the user to a server computer remote from the device.

Consequently, on the remote server computer, there is generateddefinition data which defines one or more of the video lengths, one ormore of the GUI elements, one or more of the event types associated witha respective one of the GUI elements, or any combination thereof. Thegenerated definition data is sent to the user's device, and received bydefinition generator, which forwards the definition data to the GUIelement presenter 130, the forwarder 140, or to both.

The apparatus 1000 may further include a content forwarder.

Optionally, the content forwarder receives from the remote servercomputer, a link usable for accessing a content item based on thesub-portion communicated to the server computer—say a video clip, andallows the user to forward the received link to one or more recipients,as described in further detail hereinabove.

Optionally, the content item (say the video clip) is further based onvideo data received on the server computer from at least one seconddevice in predefined proximity to the first device.

For example, the content may be based on the video sub-portion receivedon the server computer from the user's device, combined (say by videoconcatenation) with a video sub-portion received from a second device.The sub-portions may be combined based on GPS data received from bothdevices, and a digital map available on the server computer—which showthat the two devices are present simultaneously within the area of asame sport facility, say a same tennis stadium.

Reference is now made to FIG. 2, which is a simplified flowchartschematically illustrating an exemplary method for event based videogeneration, according to an exemplary embodiment of the presentinvention.

An exemplary method for event based video generation, according to anexemplary embodiment of the present invention, may be executed by acomputer processor of a device.

The device may include but is not limited to a smart cellular phone (sayan Apple® iPhone or a Samsung® Galaxy cellular phone) or a tabletcomputer (say an Apple® iPad).

In a first example, for carrying out the exemplary method, the devicecommunicates with one or more cameras (say with an action camera), forreceiving a video feed captured live during a game of sport, a seminar,a lecture, a speech, etc., as described in further detail hereinabove.

In a second example, the video feed is rather captured by a user of thedevice, using a camera installed on the device itself (say a smart phonecamera), during a game of sport, a seminar, a lecture, a speech, etc.,as described in further detail hereinabove.

Thus, in the method, there is received 210 the feed of video captured bythe camera—say a video feed which the user captures himself using acamera installed on the user's device (say the user's smart phone), avideo feed wirelessly streamed live to the user's device from an actioncamera installed in a tennis court, etc. Optionally, the video feed isreceived 210 by the video feed receiver 110, as described in furtherdetail hereinabove.

During the receiving 210 of the video feed, there are maintained 220 oneor more buffers on a memory of the device, say by the buffer maintainer120, as described in further detail hereinabove.

At least one of the buffers stores a most recent portion of the videofeed being received 210—say the last five minutes of video received bythe video feed receiver 110, as described in further detail hereinbelow.

Optionally, throughout at least a part of the receiving 210 of thevideo, there are maintained two buffers which span partially overlappingtime frames, as described in further detail hereinbelow, and illustratedby FIG. 5.

During the receipt 210, there are further presented 230 one or more GUI(Graphical User Interface) elements—say radio buttons, check boxes,options in a menu, etc., as known in the art, on a display of the user'sdevice, say by the GUI element presenter 130, as described in furtherdetail hereinabove.

Each one of the GUI elements is associated with a respective videolength predefined by a user of the device, by a programmer of theapplication downloaded to the user's device, by an administrator of aremote computer in communication with the user's device, etc., asdescribed in further detail hereinabove.

Upon actuation of one of the GUI elements by the user of the device—sayby clicking or touching the GUI element, there is forwarded 240 asub-portion of the video feed portion stored in one of the buffers forfurther processing, from the buffer, say by the forwarder 140, asdescribed in further detail hereinabove.

The forwarded 240 sub-portion's has the video length associated with theGUI element actuated by the user, and predefined by the user,programmer, or administrator, etc., for the specific GUI element, asdescribed in further detail hereinabove.

Thus, by actuating one of the GUI Elements, the user implicitly orexplicitly, chooses the size (say time length) of the video sub-portionforwarded 240 for further processing, as described in further detailhereinbelow.

Optionally, the sub-portion is forwarded 240 by communicating thesub-portion to a server computer remote from the device (say to aservice provider's computer in remote communication with the user'sdevice), as described in further detail hereinabove.

For example, the sub-portion may be communicated 240 over the internetor over another computer network, which the user's device accessesthrough a Wi-Fi connection, through a connection provided by a mobilecarrier, etc., as known in the art.

In one example, on the server computer, the sub-portion is furtherprocessed by conversion into a content item such as a video clip.

Optionally, in the example, the video clip may be distributed to one ormore recipients directly, from the server computer, using a recipientslist predefined by the user through remote access to the servercomputer, say on a website implemented on the remote computer, asdescribed in further detail hereinabove.

Alternatively, the video clip may be distributed indirectly, using anemail message which bears a link usable for downloading the video clipfrom the server computer, and is sent to the user. The user in turn, mayforward the email to one or more recipients, as described in furtherdetail hereinabove.

Optionally, the sub-portion is rather forwarded 240 for furtherprocessing by presenting of the sub-portion on a screen of the user'sdevice, say by the video presenter, thus playing the sub-portion ofinterest directly, to the user himself.

Optionally, the method further includes a capturing of the video feed bythe user himself, using the device's own camera, as described in furtherdetail hereinabove.

Optionally, the method further includes controlling a camera (say anaction camera) in communication with the user's device, say over awireless connection, using a dedicated application—say a driverapplication in communication with the camera, for capturing the videofeed, as known in the art.

Optionally, each one of the GUI elements is presented 230 (say by theGUI element presenter 130) with a marking which indicates an associationof the GUI element with a respective event type, as described in furtherdetail hereinbelow.

Each one of the event types may be predefined for a specific one of theGUI elements, say by the user, administrator or programmer, as describedin further detail hereinabove.

Thus, in one example, per the predefined event types, during a game ofSoccer, one GUI radio button presented 230 to the user, bears the word‘Goal’, one GUI radio button presented 230 to the user, bears the word‘Offside’, one radio button presented 230 to the user, bears the word‘Attack ’, etc., as described in further detail hereinbelow.

In the example, when a player scores a goal which is captured in thereceived 210 video feed, the user may actuate the GUI radio button whichbears the word ‘Goal’. Upon the actuation of the radio button by theuser, the forwarder 140 communicates 240 a sub-portion made of the lasttwenty seconds of the video feed stored in the buffer, to a remoteserver computer.

However, in the example, when the user rather actuates the GUI radiobutton which bears the word ‘Attack’, the forwarder 140 communicates 240a sub-portion made of the last one minute of the video feed stored inthe buffer, to the remote server computer.

Optionally, there are selected one or more of the video lengths, one ormore of the GUI elements, one or more of the event types associated witha respective one of the GUI elements, or any combination thereof, basedon the device's location, on data input by the device's user, or onboth, say by the definition generator, as described in further detailhereinabove.

Optionally, the user is allowed, say by the definition generator, todefine an association between at least one of the GUI elements and arespective video length.

Optionally, the user is allowed, say by the definition generator, todefine an association between at least one of the GUI elements and arespective event type.

Optionally, there is received, say by the definition generator,definition data which defines one or more of the video lengths, one ormore of the GUI elements, one or more of the event types associated witha respective one of the GUI elements, or any combination thereof, from aserver computer remote from the device.

The received definition data may include definitions already embedded inthe application downloaded from a remote server computer—say a servercomputer of an App Store (say from the Apple® App Store), or of aservice provide, as described in further detail hereinabove.

Alternatively or additionally, the received definition data may includedefinitions communicated from a remote server—say a remote server of aservice provider, say upon opening the downloaded application, justbefore a game which the user intends to capture with his smart phone'svideo camera, as described in further detail hereinabove.

In one example, data generated on the user's device based on a signalreceived by the user's device is forwarded (say by the definitiongenerator) to a server computer remote from the user's device.

The data generated on the user's device may include, but is not limitedto: GPS (Global Positioning System) data, DGPS (Differential GlobalPositioning System) data, another location data, etc., or anycombination thereof, as known in the art.

Consequently, on the remote server computer, based on the data forwardedto the server computer, the server computer generates definition datawhich defines one or more of the video lengths, one or more of the GUIelements, one or more of the event types associated with a respectiveone of the GUI elements, or any combination thereof.

The definition data generated on the server computer is sent by theserver computer, to the user's device, received (say by the definitiongenerator) on the device, and is forwarded for use in the presenting 230of the GUI elements, in the forwarding 240 of the sub-portion (say forsetting the sub-portion's length), or in both the presenting 230 and theforwarding 240, as described in further detail hereinabove.

In a second example, the a user of the device is allowed (say by thedefinition generator) to input a sport type, and based on the inputsport type, there are automatically selected one or more of the videolengths, one or more of the GUI elements, one or more of the event typesassociated with a respective one of the GUI elements, or any combinationthereof.

Optionally, in the second example, there are used (say by the definitiongenerator), the definitions already embedded in the application on whichthe apparatus 1000's parts 110-140 are implemented when the applicationis downloaded, say from the App Store, as described in further detailhereinabove.

Alternatively or additionally, a remote computer is communicated with(say by the definition generator), for receiving the definitions, asdescribed in further detail hereinabove.

In a third example, the user of the device is allowed to input acode—say a code given to the user at a stadium at which a Football Matchattended by the user takes place, and the user-input code is forwardedto a server computer remote from the device.

Consequently, on the remote server computer, there is generateddefinition data which defines one or more of the video lengths, one ormore of the GUI elements, one or more of the event types associated witha respective one of the GUI elements, or any combination thereof.

The generated definition data is sent to the user's device, received(say by the definition generator), and forwarded for use in thepresenting 230 of the GUI elements, in the forwarding 240 of thesub-portion (say for setting the sub-portion's length), or in both thepresenting 230 and the forwarding 240.

Optionally, there is received from the remote server (say by the contentforwarder), a link usable for accessing a content item (say a videoclip) based on the sub-portion communicated to the server computer, andthe user is allowed to forward the received link to one or morerecipients, as described in further detail hereinabove.

Optionally, the content item (say the clip) is further based on videodata received on the server computer from at least one second device inpredefined proximity to the first device.

For example, the content may be based on the video sub-portion receivedon the server computer from the user's device, combined (say by videoconcatenation) with a video sub-portion received from a second device.The sub-portions may be combined based on GPS data received from bothdevices, and a digital map available on the server computer—which showthat the two devices are present simultaneously within the area of asame sport facility, say a same tennis stadium.

Reference is now made to FIG. 3, which is a block diagram schematicallyillustrating a first exemplary GUI of an apparatus for event based videogeneration, according to an exemplary embodiment of the presentinvention.

In one exemplary embodiment, during a game of Soccer between FCBarcelona and Real Madrid attended by a fan, on the fan's mobile smartphone, there is received, say by the video feed receiver 110 ofapparatus 1000, a feed of video captured by fan himself, using the smartphone's camera.

As the video feed captured by a camera is being received, there aremaintained one or more buffers, say by the buffer maintainer 120, asdescribed in further detail hereinabove.

In the exemplary embodiment, the buffer stores the most recent tenminutes of the video being received.

During receipt of the video feed, there are presented on a display ofthe fan's mobile smart phone, say by the GUI element presenter 130 ofapparatus 1000, in a GUI (Graphical User Interface), one or more GUIelements 301-314 (say a few buttons, menu options, etc.), as known inthe art.

Each one of the GUI elements 301-314 is associated with a respectivepredefined video length.

Optionally, the video length is predefined for each one of the radiobuttons specifically, in a preliminary step of radio button definitionby the fan, by an administrator of a server computer in remotecommunication with the smart phone, or by a programmer, as described infurther detail hereinabove.

In the exemplary embodiment, each one of the GUI elements 301-314 isfurther associated with a respective event type—which is also predefinedby the user, administrator or programmer, for the specific GUI element.

Each one of the GUI elements 301-314 is presented to the fan, on thescreen of fan's smart phone, with a marking which indicates theassociation of the GUI element with the respective event type predefinedfor the GUI element.

Thus, in the example, per the predefined event types, during the game,one GUI element 301 bears the word ‘Goal’, one GUI element bears theword ‘Fault’ 302, one GUI element 303 bears the word ‘Offside’ 314, andone GUI element 301 bears the word ‘Attack’.

Upon actuation of one of the GUI elements 301-314 by the fan—say bytouching one of the GUI's radio buttons 301-314, there is forwarded asub-portion of the video feed portion stored in the buffer, bycommunication, to a server computer remote from the smart phone.

The forwarded sub-portion is of a video length associated with the GUIelement actuated by the user—say the video length predefinedspecifically for the GUI element (say button) touched by the fan.

Thus, in the example, when one of the players scores a goal, the fanactuates (say by touching) the button which bears the word ‘Goal’, and asub-portion made of the last one twenty seconds of the ten minutesstored in the buffer maintained on the user's device, is forwarded bycommunication to the remote server computer.

However, when Barcelona's Lional Messi scores a goal, and the fan wishesa longer sub-portion which hopefully, captures the whole Barcelonaattack which leads to the goal scoring, the fan rather actuates thebutton which bears the word ‘Attack’. Consequently, a sub-portion madeof the last one minute of the ten minutes stored in the buffer, isforwarded by communication to the remote server computer.

Then, on the server computer, the sub-portion is further processed byconversion into a video clip. Optionally, the video clip is added titleswhich describe the type of event (say ‘Goal’ or ‘Attack’) associatedwith the GUI element actuated by the fan, as well as additional titlessuch as ‘Real Madrid vs. FC Barcelona’, a date, etc.

Finally, the server computer sends an email message which bears a linkusable for downloading the video clip to the fan's smart phone, and thefan forwards the email message to one or more recipients.

The video clip distributed as an email attachment, to the recipient, isthus focused at the very specific moments of interest to the user (saygoals and attacks by the fan's favorite team). Further, bandwidthconsumed by the fan's smart phone is reduced to the bandwidth needed forthe twenty seconds or one minutes long video sub-portions of interest tothe fan.

Reference is now made to FIG. 4, which is a block diagram schematicallyillustrating a second exemplary GUI of an apparatus for event basedvideo generation, according to an exemplary embodiment of the presentinvention.

In one exemplary embodiment, a mother attends an amateur Football Gamebetween two schools, at a stadium.

During the game, on the mother's mobile smart phone, there is received,say by the video feed receiver 110 of apparatus 1000, a feed of videocaptured by a camera wirelessly connected to the mother's mobile smartphone.

As the video feed captured by a camera is being received, there aremaintained one or more buffers, say by the buffer maintainer 120, asdescribed in further detail hereinabove.

In the exemplary embodiment, at least on of the buffers stores the mostrecent five minutes of the video being received.

During receipt of the video feed, there are presented on a display ofthe mother's mobile smart phone, say by the GUI element presenter 130 ofapparatus 1000, in a GUI (Graphical User Interface), two GUI elements401-402 (say a as two buttons), as known in the art.

Each one of the GUI elements 401-402 is associated with a respectivepredefined video length, as described in further detail hereinabove.

In the exemplary embodiment, each one of the GUI elements 401-402 isfurther associated with a respective predefined event type, as describedin further detail hereinabove.

Further, each one of the GUI elements 401-402 is presented on thedisplay of the mother's mobile phone, with a marking which indicates theassociation of the GUI element with the respective event type predefinedfor the GUI element.

Thus, in the example, per the predefined event types, during the game, afirst GUI element 401 presented to the mother on her smart phone'sdisplay bears the word ‘Goal’, while a second GUI element 402 presentedto the mother bears the word ‘My boy’ 402.

In the example, when one of the players scores a goal, the motheractuates (say by touching) the button which bears the word ‘Goal’, and asub-portion made of the last twenty seconds of the ten minutes stored inthe buffer maintained on the user's device, is forwarded bycommunication to the remote server computer.

When her son receives the ball, the mother actuates the button whichbears the word ‘My boy’, and a sub-portion made of the last one minuteof the video feed portion stored in the buffer, is forwarded bycommunication to the remote server computer.

Then, on the server computer, the sub-portion is further processed byconversion into a video clip, which is distributed automatically in anemail message which bears a link usable for downloading the video clipfrom the server computer, to the mother and to one or more otherrecipients. Optionally, the recipients are predefined by the mother on adedicated web site, prior to the game, as described in further detailhereinabove.

Reference is now made to FIG. 5, which is a block diagram schematicallyillustrating computer memory buffer usage in performing steps of eventbased video generation, according to an exemplary embodiment of thepresent invention.

According to an exemplary embodiment, throughout most of the receivingof the video feed, say by video feed receiver 110, there are maintainedtwo buffers which span partially overlapping time frames of fiveminutes.

Thus, in one exemplary scenario, when a receipt 210 of a live video feedon a user's device starts, the buffer maintainer 120 opens a firstbuffer 501, and starts filling the buffer with the live video feedreceived 210 by the video feed receiver 110 (say with a sequentialdigital data representation of the feed's frames, as known in the art).

By the end of the first minute of the video feed, the buffer maintainer120 opens a second buffer, and starts filling the second buffer too,with the live video feed received 210 by the video feed receiver 110(starting with the second minute of the live video feed). The buffermaintainer 120 thus maintains the two buffers by updating both bufferssimultaneously, for the next four minutes.

By the end of the fifth minute, the first buffer 501 is fully filled andstores minutes 1-5 of the video feed, whereas the second buffer 502stores minutes 2-5 of the video feed (i.e. four minutes) with the lastfifth of the second buffer 502 being empty.

At that point (i.e. at the end of the fifth minute of the receiving210), the buffer maintainer 120 opens a third buffer 503, stops updatingthe first buffer (now filled) 201, and starts updating the third buffer503, with the live video feed being received 210, simultaneouslyupdating the second 502 buffer for the next one minute.

In the next three minutes (i.e. minutes 7-9 of the video feed), thebuffer maintainer 120 maintains the third buffer 503 only.

By the end of the ninth minute, the third buffer 503 stores minutes 6-9of the video feed (i.e. four minutes) with the last fifth of the thirdbuffer 503 being empty

At that point (i.e. at the end of the ninth minute), the buffermaintainer 120 opens a fourth buffer 504, starts updating the fourthbuffer 504, with the live video feed being received 210, simultaneouslyupdating the third 503 buffer for the next one minute, and so on and soforth, as long as the video feed receipt 210 continues.

In the exemplary scenario, thanks to the at least one minute longoverlaps between the buffers (say for the video feed's second, sixth andtenth minute), any event of a length of up to one minute captured in thevideo feed may be forwarded per a user's actuation of one of the GUIelements presented by the GUI element presenter 130.

Even an event captured at the very beginning of one buffer may beforwarded, since the event is captured in a previous buffer's endingportion.

For example, when the user pushes the ‘Attack’ GUI element 314 presentedby the GUI element presenter 130 during a second minute of the videofeed's receipt 210 (say at the 72^(nd) second of the video feed), thesecond buffer 502 holds only the last twelve seconds.

However, thanks to the overlap, the first buffer holds the entire oneminute of video length predefined for that GUI element 314, thus makingthe forwarding of the one last minute (going from the exact 72^(nd)second backwards) long sub-potion possible.

The longer the overlap between two buffers of concurrent maintenance,say by the buffer maintainer 120, the longer is the sub-potion's videolength secured thanks to the overlapping.

Reference is now made to FIG. 6 which is a block diagram schematicallyillustrating an exemplary computer readable medium storing computerexecutable instructions for performing steps of event based videogeneration, according to an exemplary embodiment of the presentinvention.

According to an exemplary embodiment of the present invention, there isprovided a non-transitory computer readable medium 6000, such as a MicroSD (Secure Digital) Card, a CD-ROM, a USB-Memory, a Hard Disk Drive(HDD), a Solid State Drive (SSD), etc.

The computer readable medium 6000 stores computer executableinstructions, for performing steps of event based video generation.

The instructions may be executed upon one or more computer processors,say on a computer processor of a device such as smart phone (say anApple® iPhone or a Samsung® Galaxy cellular phone) or a tablet computer(say an Apple® iPad).

In a first example, for carrying out the steps, the device's computerprocessor communicates with one or more cameras (say with an actioncamera), for receiving a video feed captured live during a game ofsport, a seminar, a lecture, a speech, etc., as described in furtherdetail hereinabove.

In a second example, the video feed is rather captured by a user of thedevice, using a camera installed on the device itself (say a smart phonecamera), as described in further detail hereinabove.

The computer executable instructions include a step of receiving 610 onthe device, a feed of video captured by a camera—say a video feed whichthe user captures himself using a camera installed on the device (saythe smart phone), a live video feed streamed wirelessly to the devicefrom an action camera, etc.

The computer executable instructions further include a step ofmaintaining 620 one or more buffers on a memory of the device during thereceiving 610 of the video feed, as described in further detailhereinabove.

At least one of the buffers stores a most recent portion of the videofeed being received 610—say the last five minutes of video received 610,as described in further detail hereinabove.

Optionally, throughout at least a part of the receiving 610 of the videofeed by there are maintained two buffers which span partiallyoverlapping time frames, as described in further detail hereinbelow, andas illustrated by FIG. 5.

The computer executable instructions further include a step ofpresenting 630 one or more GUI (Graphical User Interface) elements—sayradio buttons, check boxes, options in a menu, etc., as known in theart, to the user, on a display of the user's device, during the receipt610, as described in further detail hereinabove.

Each one of the GUI elements is associated with a respective videolength predefined by a user, a programmer, an administrator, etc., asdescribed in further detail hereinabove.

The computer executable instructions further include a step of, uponactuation of one of the GUI elements by the user of the device (say byclicking or touching the GUI element), forwarding 640 a sub-portion ofthe video feed portion stored in one of the buffers for furtherprocessing, as described in further detail hereinabove.

The forwarded 640 sub-portion's has the video length associated with theGUI element actuated by the user, and predefined by the user,programmer, or administrator, etc., for the GUI element, as described infurther detail hereinabove.

Thus, by actuating one of the GUI elements, the user implicitly orexplicitly, chooses the size (say time length) of the video sub-portionforwarded 640 for further processing, as described in further detailhereinbelow.

Optionally, the sub-portion is forwarded 640 by communicating thesub-portion to a server computer remote from the device (say to aservice provider's computer in remote communication with the user'sdevice).

For example, the sub-portion may be communicated 640 over the internetor over another computer network, which the device accesses through aWi-Fi connection, through a connection provided by a mobile carrier,etc., as known in the art.

In one example, the computer executable instructions further include astep of further processing the sub-portion by conversion into a contentitem such as a video clip.

Optionally, in the example, the computer executable instructions furtherinclude a step of distributing the video clip to one or more recipientsdirectly from the server computer, using a recipients list predefined bythe user through remote access to the server computer (say on awebsite), as described in further detail hereinabove.

Alternatively, the computer executable instructions further include astep of distributing the video clip indirectly, in an email messagewhich bears a link usable for downloading the video clip from the servercomputer, and is sent to the user. The user in turn, may forward theemail to one or more recipients, as described in further detailhereinabove.

Optionally, the sub-portion is rather forwarded 640 for furtherprocessing by presenting (say by the video presenter) on a screen of theuser's device, thus playing the sub-portion of interest directly, to theuser himself, as described in further detail hereinabove.

Optionally, the computer executable instructions further include a stepof capturing of the video feed by the user himself, using the device'sown camera, as described in further detail hereinabove.

Optionally, the computer executable instructions further include a stepof controlling a camera (say an action camera) in communication with theuser's device, say over a wireless connection, using a dedicatedapplication—say a driver application installed on the user's device, asknown in the art.

Optionally, the computer executable instructions further include a stepof presenting 630 each one of the GUI elements with a marking whichindicates an association of the GUI element with a respective eventtype, as described in further detail hereinabove.

Each one of the event types is predefined, for a specific one of the GUIelements, say by the user, administrator or programmer, as described infurther detail hereinabove.

Thus, in one example, per the predefined event types, during a game ofSoccer, one GUI radio button presented 630 to the user, bears the word‘Goal’, one GUI radio button presented 630 to the user, bears the word‘Offside’, one radio button presented 630 to the user, bears the word‘Attack ’, etc., as described in further detail hereinabove.

In the example, when a player scores a goal which is captured in thevideo feed being received 610, the user may actuate the GUI radio buttonwhich bears the word ‘Goal’. Upon the actuation of the radio button bythe user, the a sub-portion made of the last twenty seconds of the videofeed stored in the buffer, is communicated 640 to a remote servercomputer.

However, in the example, when the user rather actuates the GUI radiobutton which bears the word ‘Attack’, the a sub-portion made of the lastone minute of the video feed stored in the buffer, is communicated 640to the remote server computer.

Optionally, the computer executable instructions further a step ofselecting one or more of the video lengths, one or more of the GUIelements, one or more of the event types associated with a respectiveone of the GUI elements, or any combination thereof, based on thedevice's location, on data input by the device's user, or on both.

Optionally, the computer executable instructions further include a stepof allowing the user to define an association between at least one ofthe GUI elements and a respective video length.

Optionally, the computer executable instructions further include a stepof allowing the user to define an association between at least one ofthe GUI elements and a respective event type.

Optionally, the computer executable instructions further include a stepof receiving definition data which defines one or more of the videolengths, one or more of the GUI elements, one or more of the event typesassociated with a respective one of the GUI elements, or any combinationthereof from a server computer remote from the device, as described infurther detail hereinabove.

In one example, the computer executable instructions further include astep of forwarding data generated on the user's device based on a signalreceived by the user's device, to a server computer remote from theuser's device, as described in further detail hereinabove.

The data generated based on the signal may include, but is not limitedto: GPS (Global Positioning System) data, DGPS (Differential GlobalPositioning System) data, another location data, etc., or anycombination thereof, as known in the art.

Consequently, on the remote server computer, based on the data forwardedto the server computer, the server computer generates definition datawhich defines one or more of the video lengths, one or more of the GUIelements, one or more of the event types associated with a respectiveone of the GUI elements, or any combination thereof.

The definition data generated on the server computer is sent by theserver computer, to the user's device, received on the device, andforwarded for use in the presenting 630 of the GUI elements, in theforwarding 640 of the sub-portion (say for setting the sub-portion'slength), or in both, as described in further detail hereinabove.

In a second example, the computer executable instructions furtherinclude a step of allowing the user to input a sport type, and based onthe input sport type, automatically selecting one or more of the videolengths, one or more of the GUI elements, one or more of the event typesassociated with a respective one of the GUI elements, or any combinationthereof, as described in further detail hereinabove.

In a third example, the computer executable instructions further includea step of allowing the user to input a code—say a code given to the userat a stadium at which a Football Match attended by the user takes place,and of forwarding the user-input code to a server computer remote fromthe device.

Consequently, on the remote server computer, there is generateddefinition data which defines one or more of the video lengths, one ormore of the GUI elements, one or more of the event types associated witha respective one of the GUI elements, or any combination thereof.

The generated definition data is sent to the user's device, on thedevice, and is forwarded for use in the presenting 630 of the GUIelements, in the forwarding 640 of the sub-portion (say for setting thesub-portion's length), or in both the presenting 630 and the forwarding640, as described in further detail hereinabove.

Optionally, the computer executable instructions further include a stepof receiving from the remote server, a link usable for accessing thecontent item based on the sub-portion communicated to the servercomputer, and of allowing the user to forward the received link to oneor more recipients, as described in further detail hereinabove.

Optionally, the content item (say the clip) is further based on videodata received on the server computer from at least one second device inpredefined proximity to the first device.

For example, the content may be based on the video sub-portion receivedon the server computer from the user's device, combined with a videosub-portion received from a second device which according to GPS datareceived from both devices, and a digital map available on the servercomputer, are both present simultaneously within an area of a same sportfacility, say a same tennis stadium.

It is expected that during the life of this patent many relevant devicesand systems will be developed and the scope of the terms herein,particularly of the terms “Computer”, “Camera”, “Smart Phone”, “TabletComputer”, “Micro SD Card”, “CD-ROM”, “USB-Memory”, “Hard Disk Drive(HDD)”, “Solid State Drive (SSD)”, and “Computer Processor”, is intendedto include all such new technologies a priori.

It is appreciated that certain features of the invention, which are, forclarity, described in the context of separate embodiments, may also beprovided in combination in a single embodiment. Conversely, variousfeatures of the invention, which are, for brevity, described in thecontext of a single embodiment, may also be provided separately or inany suitable subcombination.

Although the invention has been described in conjunction with specificembodiments thereof, it is evident that many alternatives, modificationsand variations will be apparent to those skilled in the art.Accordingly, it is intended to embrace all such alternatives,modifications and variations that fall within the spirit and broad scopeof the appended claims.

All publications, patents and patent applications mentioned in thisspecification are herein incorporated in their entirety by referenceinto the specification, to the same extent as if each individualpublication, patent or patent application was specifically andindividually indicated to be incorporated herein by reference. Inaddition, citation or identification of any reference in thisapplication shall not be construed as an admission that such referenceis available as prior art to the present invention.

What is claimed is:
 1. A computer implemented method of event basedvideo generation, comprising: on a device being used by a user,receiving a feed of video captured by a camera; on a memory of thedevice, maintaining for the user, at least one buffer storing a mostrecent portion of the video feed being received, said maintainingcomprising, during at least a part of said receiving of the video feed,maintaining at least two buffers, such that each first one of the atleast two buffers being maintained, is spanning a time frameoverlapping, but only partially, with a timeframe being spanned by asecond one of the buffers, the time frame being spanned by the secondbuffer overlapping, but only partially, with the time frame beingspanned by the first buffer; on a display of the device, presenting atleast one GUI (Graphical User Interface) element, each one of the GUIelements being associated with a respective length of video to beforwarded from the buffer upon actuation of the GUI element by a user ofthe device; and upon actuation of one of the GUI elements by the user ofthe device, forwarding at least a sub-portion of the video feed portionstored in the buffer for further processing, the forwarded sub-portionhaving the video length associated with the GUI element actuated by theuser.
 2. The method of claim 1, wherein said forwarding comprisescommunicating the sub-portion to a server computer remote from thedevice.
 3. The method of claim 1, wherein said further processingcomprises presenting the forwarded sub-portion on a screen of thedevice.
 4. The method of claim 1, further comprising capturing the videofeed using a camera installed on the device.
 5. The method of claim 1,further comprising capturing the video feed using a camera incommunication with the device.
 6. The method of claim 1, wherein saidpresenting comprises presenting each one of the GUI elements with amarking indicating an association of the GUI element with a respectiveevent type.
 7. The method of claim 1, further comprising a preliminarystep of selecting at least one of a group consisting of at least one ofthe video lengths, at least one of the GUI elements, and at least oneevent type associated with a respective one of the GUI elements, basedon a location of the device, on data input by the user of the device, oron both the location and the user input data.
 8. The method of claim 1,further comprising a preliminary step of allowing a user to define anassociation between at least one of the GUI elements and a respectivevideo length.
 9. The method of claim 1, further comprising a preliminarystep of allowing a user to define an association between at least one ofthe GUI elements and a respective event type.
 10. The method of claim 1,further comprising a preliminary step of receiving data defining atleast one of a group consisting of at least one of the video lengths, atleast one of the GUI elements, and at least one event type associatedwith a respective one of the GUI elements, from a server computer remotefrom the device.
 11. The method of claim 1, further comprisingforwarding data generated on the device based on a signal received bythe device to a server computer remote from the device, and receivingdata generated based on the forwarded data, from the server computer,the received data defining at least one of a group consisting of atleast one of the video lengths, at least one of the GUI elements, and atleast one event type associated with a respective one of the GUIelements.
 12. The method of claim 1, further comprising forwarding GPS(Global Positioning System) data generated on the device to a servercomputer remote from the device, and receiving data generated based onthe forwarded GPS data from the server computer, the received datadefining at least one of a group consisting of at least one of the videolengths, at least one of the GUI elements, and at least one event typeassociated with a respective one of the GUI elements.
 13. The method ofclaim 1, further comprising forwarding DGPS (Differential GlobalPositioning System) data generated on the device to a server computerremote from the device, and receiving data generated based on theforwarded DGPS data from the server computer, the received data definingat least one of a group consisting of at least one of the video lengths,at least one of the GUI elements, and at least one event type associatedwith a respective one of the GUI elements.
 14. The method of claim 1,further comprising allowing a user of the device to input a sport type,and based on the input sport type, automatically selecting at least oneof a group consisting of at least one of the video lengths, at least oneof the GUI elements, and at least one event type associated with arespective one of the GUI elements.
 15. The method of claim 1, furthercomprising allowing a user of the device to input a code, forwarding thecode input by a user to a server computer remote from the device, andreceiving data generated based on the forwarded code from the servercomputer, the received data defining at least one of a group consistingof at least one of the video lengths, at least one of the GUI elements,and at least one event type associated with a respective one of the GUIelements.
 16. The method of claim 2, further comprising receiving fromthe server computer, on the device, a link usable for accessing contentbased on the sub-portion communicated to the server computer, andallowing the user to forward the received link to at least onerecipient.
 17. The method of claim 2, further comprising receiving fromthe server computer, on the device, a link usable for accessing contentbased on the sub-portion communicated to the server computer and onvideo data received on the server computer from at least one seconddevice determined to be in proximity to the device that the link isreceived on, and allowing the user to forward the received link to atleast one recipient.
 18. An apparatus for event based video generation,the apparatus being implemented on a device being used by a user andcomprising: a video feed receiver, configured to receive a feed of videocaptured by a camera; a buffer maintainer, in communication with saidvideo feed receiver, configured to maintain for the user, at least onebuffer storing a most recent portion of the video feed being received,on a memory of the device, the maintaining of the at least one buffer bysaid buffer maintainer comprising, during at least a part of thereceiving of the video feed by said video feed receiver, maintaining atleast two buffers, such that each first one of the at least two buffersbeing maintained, is spanning a time frame overlapping, but onlypartially, with a timeframe being spanned by a second one of thebuffers, the time frame being spanned by the second buffer overlapping,but only partially, with the time frame being spanned by the firstbuffer; a GUI element presenter, configured to present at least one GUI(Graphical User Interface) element on a display of the device, each oneof the GUI elements being associated with a respective length of videoto be forwarded from the buffer upon actuation of the GUI element by auser of the device; and a forwarder, in communication with said GUIelement presenter and said buffer maintainer, configured to forward atleast a sub-portion of the video feed portion stored in the buffer forfurther processing, upon actuation of one of the GUI elements by theuser of the device, the forwarded sub-portion having the video lengthassociated with the GUI element actuated by the user.
 19. Anon-transitory computer readable medium storing computer executableinstructions for performing steps of event based video generation, on adevice being used by a user, the steps comprising: on the device beingused by the user, receiving a video feed captured by a camera; on amemory of the device, maintaining for the user, at least one bufferstoring a most recent portion of the video feed being received, saidmaintaining comprising, during at least a part of said receiving of thevideo feed, maintaining at least two buffers, such that each first oneof the at least two buffers being maintained, is spanning a time frameoverlapping, but only partially, with a timeframe being spanned by asecond one of the buffers, the time frame being spanned by the secondbuffer overlapping, but only partially, with the time frame beingspanned by the first buffer; on a display of the device, presenting atleast one GUI (Graphical User Interface) element, each one of the GUIelements being associated with a respective length of video to beforwarded from the buffer upon actuation of the GUI element by a user ofthe device; upon actuation of one of the GUI elements by the user of thedevice, forwarding at least a sub-portion of the video feed portionstored in the buffer for further processing, the forwarded sub-portionhaving the video length associated with the GUI element actuated by theuser.